import { Global, Module } from '@nestjs/common';
import { RedisService } from './redis.service';
import { createClient } from 'redis';
import { ConfigService } from '@nestjs/config';

@Global()  //设置成全局模块，这样只需要在 AppModule 里引入，别的模块不用引入也可以注入 RedisService 了。
@Module({

  providers: [     //提供者 只能在模块内使用
    RedisService,  //自定义的一些Redis操作方法
    {
      provide: 'REDIS_CLIENT',  //创建 Redis客户端服务 的工厂
      async useFactory(configService: ConfigService) {
        console.log(configService.get('redis_server_host'));
        console.log(configService.get('redis_server_port'));
        const client = createClient({
          socket: {
            host: 'localhost',
            port: 6379
          },
          database: 1  //通常，Redis默认有16个数据库，编号从0到15。相当不同命名空间。
        });
        await client.connect();
        return client;
      },
      inject: [ConfigService]  //注入 ConfigService
    }
  ],

  //导出列表
  exports: [RedisService]
  
})
export class RedisModule { }
